﻿#!/bin/bash

# 设置变量
IP="192.168.0.12"
NETMASK="24" # 使用CIDR表示法
GATEWAY="192.168.0.1"
INTERFACE="ens33"

# 检查IP是否已被占用
if ping -c 1 -W 1 "$IP" >/dev/null; then
    echo "警告: IP地址 $IP 已被占用，设置可能会失败。"
else
    # 检查是否使用nmcli（CentOS 8+）
    if command -v nmcli &> /dev/null; then
        # CentOS 8及以上版本使用nmcli
        echo "检测到nmcli，使用NetworkManager配置..."

        # 设置静态IP和网关
        sudo nmcli connection modify "$INTERFACE" ipv4.method manual ipv4.addresses "$IP/$NETMASK" ipv4.gateway "$GATEWAY"

        # 启用并连接配置
        sudo nmcli connection up "$INTERFACE"
    else
        # CentOS 7及更早版本使用ifcfg文件
        echo "未检测到nmcli，使用ifcfg文件配置..."

        # 备份原有配置文件
        sudo cp /etc/sysconfig/network-scripts/ifcfg-$INTERFACE /etc/sysconfig/network-scripts/ifcfg-$INTERFACE.backup

        # 编辑配置文件
        sudo bash -c "cat > /etc/sysconfig/network-scripts/ifcfg-$INTERFACE << EOF
TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=$INTERFACE
UUID=$(uuidgen)
DEVICE=$INTERFACE
ONBOOT=yes
IPADDR=$IP
PREFIX=$NETMASK
GATEWAY=$GATEWAY
EOF"

        # 重启网络服务
        sudo systemctl restart network
    fi

    echo "网络配置已完成，接口 $INTERFACE 的 IP 地址已设置为 $IP"
fi
